package com.wx.jobs;

import com.qiniu.common.QiniuException;
import com.wx.constant.JedisConstant;
import com.wx.utils.QiNiuFileUpload;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import redis.clients.jedis.JedisPool;

import java.util.Set;

public class DeleteImgJob {
    /**
     * 删除服务器中垃圾图片
     * 定义：在文件上传的时候保存到redis中的文件存在
     * 但是在套餐保存到数据库的时候保存到redis中不存在
     * 垃圾文件两个set集合差集
     */
    @Autowired
    @Qualifier("jedisPool")
    private JedisPool jedisPool;

    public void deleteImgJob() throws QiniuException {
        // 获取所有的垃圾图片的名字
        Set<String> sdiff = jedisPool.getResource().sdiff(JedisConstant.JEDIS_SERVIC, JedisConstant.JEDIS_DATABASE);
        // 遍历集合获得所有的垃圾图片名字然后删除
        if (sdiff != null) {
            for (String name : sdiff) {
                // 从云服务器删除文件

                try {
                    QiNiuFileUpload.deleteFile(name);
                } catch (QiniuException e) {
                    System.out.println("妈的，七牛服务器又抽风了");
                }
                // 从redis删除
                jedisPool.getResource().srem(JedisConstant.JEDIS_SERVIC,name);
            }
        }
        System.out.println("=========clear all==========");
    }
}
